// models/order_model.go
package models

import (
	"errors"
	"gorm.io/gorm"
	"muziai-server/models/ctype"
	"time"
)

type OrderModel struct {
	Model
	UserID    uint                `json:"userID"`
	UserModel UserModel           `gorm:"foreignKey:UserID" json:"-"`
	No        string              `gorm:"size:64" json:"no"`
	Price     int64               `json:"price"` // 单位是分
	Scope     int64               `json:"scope"`
	PayStatus ctype.PayStatusType `json:"payStatus"` // 1未支付 2支付成功 3 支付超时 4
	PaySource int8                `json:"paySource"` // 支付源  1 支付宝微信 2 微信
	PayUrl    string              ` json:"payUrl"`   //gorm:"size:256"
	PayedTime *time.Time          `json:"payedTime"` // 支付时间
	DeletedAt gorm.DeletedAt      `gorm:"deletedAt"`
}

func (o OrderModel) BeforeDelete(tx *gorm.DB) (err error) {
	if o.PayStatus == ctype.UnpaidPayStatus {
		return errors.New("未支付的订单不能删除")
	}
	return nil

}
